Repository navigation
Preserve federated quantiles across empty client digests - #5364
YuanTingHsieh merged 2 commits into
Conversation
Signed-off-by: Sylvester Kaczmarek <16242628+sylvesterkaczmarek@users.noreply.github.com>
|
YuanTingHsieh
left a comment
There was a problem hiding this comment.
The fix correctly preserves accumulated digests when a client supplies no digest and replaces empty placeholders when valid data arrives. The regression tests cover all six client orders and retain the all-empty control. LGTM.
|
Thanks @YuanTingHsieh for the review and approval. I see the updated test matrix running on the approved head and will leave the change unchanged for the CI results. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #5364 +/- ##
=======================================
Coverage 69.35% 69.35%
=======================================
Files 1031 1031
Lines 108680 108680
=======================================
+ Hits 75372 75373 +1
+ Misses 33308 33307 -1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Fixes #5363.
Preserve the accumulated t-digest when a client supplies no digest, and replace an empty placeholder when a later client has data. This prevents client-order-dependent loss of quantiles and
AttributeErrorfrom calling.merge()on an empty dictionary. All-empty features continue returning unavailable quantiles.The regression exercises the public
get_quantilespath using realfastdigestobjects. It covers all six orders of two populated clients and one empty client, checks expected quantiles and unchanged serialized inputs, and retains an all-empty control.Validation
python -m pytest -q tests/unit_test/app_common/statistics92 passed on Linux ARM64, Python 3.12, with the project's pinned
fastdigest==0.4.0. The focused regression on unchanged upstream gives 6 failures and 1 pass. Black, isort, flake8 andgit diff --checkpass for the changed files.This was tested against the checkout's source in an isolated Linux container. A deployed federated job was not run.